What is assertion-error?
The assertion-error package is used to create error objects that are specifically meant for testing assertions. It is commonly used in conjunction with assertion libraries to provide a more descriptive error message when an assertion fails. The error object created by assertion-error includes a message and can also include properties that describe the assertion that failed.
What are assertion-error's main functionalities?
Creating an AssertionError instance
This feature allows you to create an instance of an AssertionError with a custom message. This is useful when you want to throw a specific error in your tests when an assertion fails.
{"const AssertionError = require('assertion-error');
const error = new AssertionError('expected value to be true');
throw error;"}
Other packages similar to assertion-error
chai
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework. It offers more comprehensive features for assertions compared to assertion-error, including a range of assertion styles (expect, should, assert) and numerous plugins.
should
Should.js is an expressive, readable, framework-agnostic assertion library. The key difference is that should.js provides a rich set of assertions and chainable methods to construct assertions, whereas assertion-error is focused on creating error objects for failed assertions.
expect.js
Expect.js is a minimalistic BDD-style assertions library that can be used in node.js or in the browser. It provides a similar set of assertion checks as assertion-error but with a different API and additional features like chainable assertions.
AssertionError and AssertionResult classes.
What is AssertionError?
Assertion Error is a module that contains two classes: AssertionError
, which
is an instance of an Error
, and AssertionResult
which is not an instance of
Error.
These can be useful for returning from a function - if the function "succeeds"
return an AssertionResult
and if the function fails return (or throw) an
AssertionError
.
Both AssertionError
and AssertionResult
implement the Result
interface:
interface Result {
name: "AssertionError" | "AssertionResult";
ok: boolean;
toJSON(...args: unknown[]): Record<string, unknown>;
}
So if a function returns AssertionResult | AssertionError
it is easy to check
which one is returned by checking either .name
or .ok
, or check
instanceof Error
.
Installation
Node.js
assertion-error
is available on npm.
$ npm install --save assertion-error
Deno
assertion_error
is available on
Deno.land
import {
AssertionError,
AssertionResult,
} from "https://deno.land/x/assertion_error@2.0.0/mod.ts";